package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.DTO.GoodsNewDTO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 首页商品表 服务类
 * </p>
 *
 * @author Mr.We
 * @since 2024-06-20
 */
public interface IAnNideshopGoodService extends IService<GoodsNewDTO> {
    /**
     * 根据商品ID查询商品信息。
     *
     * @param id 商品的唯一标识ID。
     * @return AnNideshopGood 对象，包含查询到的商品信息。如果未找到对应商品，则返回null。
     */
    GoodsNewDTO queryGoodsById(Integer id);

    /**
     * 查询商品列表。
     *
     * @param map 包含查询条件的Map对象，可以指定多个查询条件如分类、价格范围等。
     * @return 包含查询结果的商品列表。如果无查询结果，则返回空列表。
     */
    List<GoodsNewDTO> queryList(Map<String, Object> map);

    /**
     * 查询满足条件的商品总数。
     *
     * @param map 包含查询条件的Map对象，用于统计满足条件的商品数量。
     * @return 满足条件的商品总数。
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 查询热门商品列表。
     *
     * @param map 包含查询条件的Map对象，可以指定热门商品的查询条件，如销量、评价等。
     * @return 包含热门商品的列表。如果无热门商品，则返回空列表。
     */
    List<GoodsNewDTO> queryHotGoodsList(Map<String, Object> map);

    /**
     * 查询指定分类下的商品列表。
     *
     * @param map 包含查询条件的Map对象，其中必须包含分类ID作为条件之一。
     * @return 包含指定分类下商品的列表。如果该分类下无商品，则返回空列表。
     */
    List<GoodsNewDTO> queryCatalogProductList(Map<String, Object> map);
}
